package com.jl15988.simpletools.appcore.dto;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

/**
 * 应用请求DTO
 *
 * @author jl15988
 */
@Data
public class AppRequestDTO {

    /**
     * 应用ID（更新时需要）
     */
    private Long id;

    /**
     * 应用名称
     */
    @NotBlank(message = "应用名称不能为空")
    @Size(max = 100, message = "应用名称长度不能超过100个字符")
    private String name;

    /**
     * 应用描述
     */
    @NotBlank(message = "应用描述不能为空")
    @Size(max = 1000, message = "应用描述长度不能超过1000个字符")
    private String description;

    /**
     * 应用包名
     */
    @NotBlank(message = "应用包名不能为空")
    @Size(max = 100, message = "应用包名长度不能超过100个字符")
    private String packageName;

    /**
     * 应用版本
     */
    @NotBlank(message = "应用版本不能为空")
    @Size(max = 20, message = "应用版本长度不能超过20个字符")
    private String version;

    /**
     * 应用版本号
     */
    @NotNull(message = "应用版本号不能为空")
    private Integer versionCode;

    /**
     * 分类ID列表
     */
    @NotEmpty(message = "至少选择一个分类")
    private List<Long> categoryIds;
} 